package com.yingxin.yx.framework.commons.activiti.def;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 任务定义
 * 前端反馈无法使用统一的数据格式，要分别写字段
 */
@Data
public class TaskDef implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "element id")
    private String elementId;

    @ApiModelProperty(value = "类型：USER(指定人) ， CANDIDATE_USERS（指定多个候选人）， GROUPS（指定组 ）， DEPT_MGR（指定部门主管 ）， APPLICANT ( 申请人)， APPLICANT_MGR (申请人主管 )")
    private String assigneeType;

    @ApiModelProperty(value = "值：USER(指定人)， APPLICANT ( 申请人)， APPLICANT_MGR (申请人主管 )")
    private String assignee;

    @ApiModelProperty(value = "值：GROUPS（指定组 ） ")
    private List<String> groups;

    @ApiModelProperty(value = "值：CANDIDATE_USERS（指定多个候选人）")
    private List<String> candidateUsers;

    @ApiModelProperty(value = "值：DEPT_MGR（指定部门主管 ）")
    private String deptId;

    // 任务对应的表单key
    private String formKey;

    // 进项减少
    private String incomeSubtract;

    //自定义表单
    private String customFormId;

    // 是否APP审核
    private String isAppApproval;

    // 代审核人
    private List<String> replacePersonIdList;

    // 按钮定义，主要用途是改名
    private List<TaskActionDef> actionDefList;

    // 用户可用操作 [通过，拒绝，通过并结束]
    private List<String> actions;

    // 前端绘图人员定义的数据结构
    // 抄送类型 对应 CarbonCopyConst
    private List<String> ccType;

    // 抄送 对应 CarbonCopyConst.GROUPS
    private List<String> ccGroup;

    // 抄送 对应 CarbonCopyConst.DEPT_MGR
    private String ccDepartment;

    // 抄送 对应 CarbonCopyConst.USER
    private List<String> cc;

}
